package com.flst.persistance.jdbcDao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.flst.model.Produit;
import com.flst.persistance.IRechercheDao;
/**
 * 
 * Cette classe contient l'implementation JDBC de l'interface IRechercheDao
 *
 */
public class RechercheDaoJdbc implements IRechercheDao{
	/**
	 * R&eacute;cup&egrave;re une liste de produits contennant le mot de la recherche
	 * @return La liste des produits issue de la recherche
	 */
	@Override
	public List<Produit> getProduits(String recherche) {
		Connection con=null;
		try {
			con = JdbcUtils.getInstance().getConnection();
		} catch (JdbcException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		List<Produit> liste=new ArrayList<Produit>();
		
		PreparedStatement vPs=null;
		try {
			
			recherche=recherche.replaceAll("'|\"", "").toUpperCase();
			System.out.println("Recherche de '"+recherche+"'");
			vPs = con.prepareStatement("SELECT * FROM PRODUIT WHERE upper(TITRE) like  '%"+recherche+"%' or upper(DESCRIPTION) like  '%"+recherche+"%' or upper(MOTCLES) like  '%"+recherche+"%'");
			
			vPs.execute();
			ResultSet vRs=vPs.getResultSet();
	
			while(vRs.next()){
				Produit produit=new Produit();
				produit.setId(vRs.getInt("ID"));
				produit.setDescription(vRs.getString("DESCRIPTION"));
				produit.setKeyword(vRs.getString("MOTCLES"));
				produit.setPopularite(vRs.getInt("POPULARITE"));
				produit.setPrix(vRs.getFloat("PRIX"));
				produit.setTitre(vRs.getString("TITRE"));
				produit.setUrlPhoto(vRs.getString("URLPHOTO"));
				produit.setVisite(vRs.getInt("VISITE"));
				liste.add(produit);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		finally{
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return liste;
	}
	
	
	
}